What is @turf/tin?
@turf/tin is a module of the Turf.js library that allows you to create a Triangulated Irregular Network (TIN) from a set of points. TINs are used in geographic information systems (GIS) to represent a surface. This package is particularly useful for spatial analysis and geospatial data visualization.
What are @turf/tin's main functionalities?
Create TIN from Points
This feature allows you to create a TIN from a set of points. Each point can have properties such as elevation, which can be used to create the TIN. The code sample demonstrates how to create a TIN from three points with elevation properties.
const turf = require('@turf/tin');
const points = turf.featureCollection([
turf.point([0, 0], {elevation: 10}),
turf.point([10, 10], {elevation: 20}),
turf.point([20, 20], {elevation: 30})
]);
const tin = turf.tin(points, 'elevation');
console.log(JSON.stringify(tin));
Other packages similar to @turf/tin
d3-delaunay
d3-delaunay is a D3 module that provides fast algorithms for computing Delaunay triangulations and Voronoi diagrams. It is similar to @turf/tin in that it can be used to create triangulated networks from a set of points. However, d3-delaunay is more focused on performance and is often used in data visualization contexts.
earcut
earcut is a fast, robust polygon triangulation library. While it is not specifically designed for geospatial data, it can be used to triangulate polygons, which is a similar operation to creating a TIN. earcut is known for its speed and simplicity.
triangulate
triangulate is a simple library for triangulating 2D polygons. It is similar to @turf/tin in that it can be used to create a network of triangles from a set of points. However, it is more general-purpose and not specifically designed for geospatial applications.
@turf/tin
tin
Takes a set of points and the name of a z-value property and
creates a Triangulated Irregular Network,
or a TIN for short, returned as a collection of Polygons. These are often used
for developing elevation contour maps or stepped heat visualizations.
This triangulates the points, as well as adds properties called a
, b
,
and c
representing the value of the given propertyName
at each of
the points that represent the corners of the triangle.
Parameters
points
FeatureCollection<Point> input pointsz
[String] name of the property from which to pull z values
This is optional: if not given, then there will be no extra data added to the derived triangles.
Examples
var points = turf.random('points', 30, {
bbox: [50, 30, 70, 50]
});
for (var i = 0; i < points.features.length; i++) {
points.features[i].properties.z = ~~(Math.random() * 9);
}
var tin = turf.tin(points, 'z')
for (var i = 0; i < tin.features.length; i++) {
var properties = tin.features[i].properties;
properties.fill = '#' + properties.a +
properties.b + properties.c;
}
Returns FeatureCollection<Polygon> TIN output
This module is part of the Turfjs project, an open source
module collection dedicated to geographic algorithms. It is maintained in the
Turfjs/turf repository, where you can create
PRs and issues.
Installation
Install this module individually:
$ npm install @turf/tin
Or install the Turf module that includes it as a function:
$ npm install @turf/turf